package br.com.usp.server;

 

import java.util.ArrayList;
import java.util.List;

import br.com.usp.client.ChamadaServicoModelador;
import br.com.usp.shared.DiagramaDTO;
 
 

import com.google.gwt.user.client.rpc.IsSerializable;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
 

public class ServicoModelador extends RemoteServiceServlet implements
ChamadaServicoModelador, IsSerializable {

 
 
	private static final long serialVersionUID = 1L;

	public DiagramaDTO salvarModelo(DiagramaDTO diagramaDTO) throws IllegalArgumentException {
	 	Persistencia p = new Persistencia();
		
		try{
			
		
		 diagramaDTO = p.cadastrarDiagrama(diagramaDTO);
		
 
		}
		catch(Exception e)
		{
		   return null;
    	}  
		return diagramaDTO;
	}

 
	public List<DiagramaDTO> listarDiagramas() throws IllegalArgumentException {
		Persistencia p = new Persistencia();
		List<Diagrama> lista = p.listarDiagramas();
		List<DiagramaDTO> listaDTO = new ArrayList<DiagramaDTO>();
		for(Diagrama d: lista)
		{
		    DiagramaDTO dDTO = new DiagramaDTO();
		    dDTO.setId(d.getId());
		    dDTO.setNome(d.getNome());
		    listaDTO.add(dDTO);
		}
		return listaDTO;
	}


	@Override
	public DiagramaDTO buscarDiagrama(DiagramaDTO diagramaDTO)
			throws IllegalArgumentException {
		Persistencia p = new Persistencia();
		diagramaDTO = p.buscarDiagrama(diagramaDTO);
		return diagramaDTO;
	}
	
	public void apagarDiagrama(DiagramaDTO diagramaDTO)  throws IllegalArgumentException
	{
		Persistencia p = new Persistencia();
	    p.apagarDiagrama(diagramaDTO);
	}
	
	

}
